package multiplex.view;

import javax.swing.JButton;
import javax.swing.JComboBox;

import java.awt.Container;   
import java.awt.GridLayout;
import java.awt.event.ActionEvent;   
import java.awt.event.ActionListener;    
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.swing.JFormattedTextField;   
import javax.swing.JLabel;    
import javax.swing.JOptionPane;
import javax.swing.JTextField;


import multiplex.facade.Facade;
import multiplex.model.Filme;

public class IFTelaCadastraFilmes extends InternalFramePrincipal{


    private JLabel labelNome;   
    private JFormattedTextField textoNome;   
    private JLabel labelNomeOriginal;   
    private JFormattedTextField textoNomeOriginal;  
    private JLabel labelLocalProducao;   
    private JFormattedTextField textoLocalProducao;   
    private JLabel labelDuracao;   
    private JFormattedTextField textoDuracao; 
    private JLabel labelAno;   
    private JFormattedTextField textoAno; 
    private JLabel labelTipoFilme;   
    private JFormattedTextField textoTipoFilme;  
    private JLabel labelIndicacaoEtaria;   
    private JFormattedTextField textoIndicacaoEtaria; 
    private JLabel labelDirecao;   
    private JFormattedTextField textoDirecao;   
    private JLabel labelElenco;   
    private JTextField textoElenco;     
    private JLabel labelSite;   
    private JFormattedTextField textoSite;   
    private JLabel labelProdutores;   
    private JFormattedTextField textoProdutores;   
    private JLabel labelDistribuidora;   
    private JFormattedTextField textoDistribuidora;
    
	private JButton botaoInserir;
  
    public IFTelaCadastraFilmes() {   
        super("Cadastro de Filmes");
           
        final Container conteudo = getContentPane();   
        conteudo.setLayout(new GridLayout(13,3,5,5));   
  
        labelNome = new JLabel("Nome");     
        textoNome = new JFormattedTextField();   
        textoNome.requestFocus();    
        
        labelNomeOriginal = new JLabel("Nome Original");  
        textoNomeOriginal = new JFormattedTextField();  
           
        labelLocalProducao = new JLabel("Local de Produção"); 
        textoLocalProducao = new JFormattedTextField();   
               
        labelDuracao = new JLabel("Duração(em minutos)");   
        textoDuracao = new JFormattedTextField(); 
        
        labelDirecao = new JLabel("Direção");   
        textoDirecao = new JFormattedTextField(); 
        
        labelAno = new JLabel("Ano(yyyy)");   
        textoAno = new JFormattedTextField(); 
        
        labelTipoFilme = new JLabel("Tipo de filme");   
        textoTipoFilme = new JFormattedTextField(); 
        
        labelIndicacaoEtaria = new JLabel("Classificação etária");   
        textoIndicacaoEtaria = new JFormattedTextField();  

        labelSite = new JLabel("Site Oficial");   
        textoSite = new JFormattedTextField();   
           
        labelProdutores = new JLabel("Produtores");   
        textoProdutores = new JFormattedTextField();   
    
        
        labelDistribuidora = new JLabel("Distribuidora");  
        textoDistribuidora = new JFormattedTextField();    
        
        labelElenco = new JLabel("Elenco");   
        textoElenco = new JTextField();   
        
        
        labelAno = new JLabel("Ano");   
        textoAno = new JFormattedTextField();   
        
        labelTipoFilme = new JLabel("Tipo Filme");   
        textoTipoFilme = new JFormattedTextField();
        
        botaoInserir = new JButton("Inserir");   
        botaoInserir.setMnemonic('I');      
           
        conteudo.add(labelNome);   
        conteudo.add(textoNome);   
        conteudo.add(labelNomeOriginal);   
        conteudo.add(textoNomeOriginal);   
        conteudo.add(labelLocalProducao);   
        conteudo.add(textoLocalProducao);   
        conteudo.add(labelDuracao);   
        conteudo.add(textoDuracao);   
        conteudo.add(labelDirecao);   
        conteudo.add(textoDirecao);   
        conteudo.add(labelAno);   
        conteudo.add(textoAno);   
        conteudo.add(labelIndicacaoEtaria);   
        conteudo.add(textoIndicacaoEtaria);   
        conteudo.add(labelTipoFilme);   
        conteudo.add(textoTipoFilme);   
        conteudo.add(labelElenco);   
        conteudo.add(textoElenco);   
        conteudo.add(labelSite);   
        conteudo.add(textoSite);   
        conteudo.add(labelProdutores);   
        conteudo.add(textoProdutores);   
        conteudo.add(labelDistribuidora);   
        conteudo.add(textoDistribuidora);
        conteudo.add(botaoInserir);    
        
       
        
        botaoInserir.addActionListener(new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent arg0) {
	Facade fachada = new Facade(); 
				try { 
					SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy");
					SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
					Calendar calAno = Calendar.getInstance();
					calAno.setTime(sdf1.parse(textoAno.getText())); 
				if(fachada.cadFilme(new Filme(textoNome.getText(), textoNomeOriginal.getText(), textoLocalProducao.getText(),textoTipoFilme.getText(), textoElenco.getText(),textoProdutores.getText(), textoDistribuidora.getText(),textoSite.getText(),Integer.parseInt(textoIndicacaoEtaria.getText()), textoDirecao.getText(), calAno, Integer.parseInt(textoDuracao.getText()), false)))
					JOptionPane.showMessageDialog(conteudo,"Filme inserido na base de dados com sucesso", "Sucesso", EXIT_ON_CLOSE);
				else JOptionPane.showMessageDialog(conteudo,"Erro","Erro" , EXIT_ON_CLOSE);
						
				} catch (Throwable e) { 
					JOptionPane.showMessageDialog(conteudo,"Erro","Erro" , EXIT_ON_CLOSE); 
					}
			}
		});
    }   
     
   
  
}  

